Field of the Invention
The present invention relates to resource configuration in an application host and more particularly to service level agreement (SLA) driven resource management in a hosted application computing environment.
Description of the Related Art
A hosted application environment is an environment in which different applications can be deployed for utilization by multiple different end users over a computer communications network. In a hosted application environment, different resources can be accessed by a hosted application including disk space, memory and instruction processing. Further, middleware including a database management system and an application server can be provided for use by applications deployed within the hosted application environment.
Originally, host application environments had been architected and implemented manually. In manually architected host application environments, the information technologists assembles a customized combination of supporting hardware devices onto which the various supporting middleware components are installed and configured so as to provide for the hosted application environment. Plainly, the process of configuring and deploying a hosted application environment that has been manually architected can take days if not weeks and in most cases, can result in operational problems due to unknown incompatibilities between hardware and software, or inappropriate configuration settings.
To address the problem of lengthy deployments and the probability of operational problems, pre-packaged fully integrated application environments have been developed in the form of a singular appliance. The singular appliance then can be deployed into the computing environment in a matter of minutes. Since the singular appliance is factory integrated and tested for interoperability, no operational problems result and the hosted application environment provided thereby can be ready to accept a deployment of an application immediately upon installation into the network.
Integrated hosted environment appliances include SLA driven management of environment resources. In this regard, the terms of an SLA can be loaded into memory and the performance of a corresponding application within the hosted environment monitored. As the performance of the application deteriorates to the point of a potential breach of the SLA, additional resources within the hosted application environment can be deployed, for instance a new virtual machine, additional memory, additional storage space and the like. Conversely, as the performance of the application is determined to well exceed the terms of the SLA, resources previously allocated for use by the application can be reduced.
In order to afford flexibility to the end user, integrated hosted computing environments are variably configurable according to one of several supplied virtual application patterns. Each pattern corresponds to a particular computing scenario for the end user, such as a particular type of industry application. In this regard, a virtual application pattern represents a collection of application components, behavioral policies, and their relationships. Core components of the pattern include web applications, databases, queues, connections to existing resources, business process models, batch jobs, mediations, etc. Core policies of the pattern include high availability, SLAs, security, multi-tenancy and isolation. Yet, the capabilities of different applications hosted within the hosted application environment often differ in respect to how resources can scale or de-scale as the case may be. Some applications may scale both vertically in respect to the addition or removal of processors, but not horizontally in respect to the addition or removal of virtual machines. Others may do both.